package com.yangfan.design_pattern.observer;

/**
 * @description: 观察者 订阅了 公告的人
 * @author: yangfan
 * @date: Created in 2020/2/10 0010 16:28
 * @modified By:
 *
 *
 * 观察者模式 也叫 发布订阅
 *
 * 一个被关注的的 公告(发布者)  多个 订阅公告的 观察者(订阅者)
 *
 * 观察者模式定义了  对象之间的 一对多依赖，让多个观察者对象 同时监听 一个主体 对象 。
 * 当主体对象 发生变化时 ， 他的所有依赖者(观察者) ， 都会收到通知并更新
 */
public class ObServer {

    //关注的主题
    private Subject subject;

    //订阅者姓名
    private String name;


    ObServer(String name,Subject subject){
        this.name = name;
        this.subject = subject;
        this.subject.addObServer(this);//对主题进行订阅
    }


    //一旦发布就调用通知
    protected void notification(String content){

        System.out.println(name + "接收到公告："+content);

    }

}
